#ifndef PLUGINS_H
#define PLUGINS_H

#include <defs/export.h>
#include <defs/global.h>
#include <extensions/context.h>
#include <QtCore>

using Optra::Extensions::ContextPtr;

namespace Optra{ namespace Extensions {
                 class Plugin;
};};

using Optra::Extensions::ContextPtr;

O_PRIVATE_DECLARE(Plugins);
class Plugins : public QObject {
    Q_OBJECT
public:
    Plugins(QObject *parent = 0);    
    ~Plugins();

	static Optra::Extensions::Plugin* fromFile(const QString& filename);

	void load(const ContextPtr& ctx);
protected:

private:    
    O_PRIVATE_DECLARE_MEMBER(Plugins);
};

#endif // PLUGINS_H

